BEGIN;

CREATE TABLE "regusuario_responsable" (
    "id" serial NOT NULL PRIMARY KEY,
    "titulo" varchar(50) NOT NULL
)
;
CREATE TABLE "usuarios" (
    "id" serial NOT NULL PRIMARY KEY,
    "nombre" varchar(50) NOT NULL,
    "paterno" varchar(20) NOT NULL,
    "materno" varchar(20) NOT NULL,
    "cargo_id" integer NOT NULL REFERENCES "regusuario_responsable" ("id") DEFERRABLE INITIALLY DEFERRED,
    "usuario" varchar(20) NOT NULL UNIQUE,
    "contrasena" varchar(20) NOT NULL,
    "creadofecha" timestamp with time zone NOT NULL,
    "modificadofecha" timestamp with time zone NOT NULL
)

CREATE TABLE "memo_patrocinador" (
    "id" serial NOT NULL PRIMARY KEY,
    "nombre" varchar(50) NOT NULL
)
;
CREATE TABLE "memo" (
    "id_ext" integer NOT NULL PRIMARY KEY,
    "fecha_ini" timestamp with time zone NOT NULL,
    "fecha_exp" date NOT NULL,
    "patrocinador_id" integer NOT NULL REFERENCES "memo_patrocinador" ("id") DEFERRABLE INITIALLY DEFERRED,
    "giro" varchar(20) NOT NULL,
    "producto" varchar(100) NOT NULL,
    "beneficio" varchar(50) NOT NULL,
    "evento" varchar(25) NOT NULL,
    "responsable_marco" varchar(50) NOT NULL,
    "telefono" varchar(15) NOT NULL,
    "responsable_area" varchar(50) NOT NULL,
    "ext_responsable" varchar(4) NOT NULL,
    "asociacion" varchar(50) NOT NULL
)
;
CREATE TABLE "memo_semaforo" (
    "id" serial NOT NULL PRIMARY KEY,
    "nummemo_id" integer NOT NULL REFERENCES "memo" ("id_ext") DEFERRABLE INITIALLY DEFERRED,
    "firmauno" boolean NOT NULL,
    "fechafirmuno" timestamp with time zone,
    "comentariosfirmauno" varchar(2000),
    "firmados" boolean NOT NULL,
    "fechafirmdos" timestamp with time zone,
    "comentariosfirmados" varchar(2000),
    "firmatres" boolean NOT NULL,
    "fechafirmtres" timestamp with time zone,
    "comentariosfirmatres" varchar(2000),
    "firmacuatro" boolean NOT NULL,
    "fechafirmcuatro" timestamp with time zone,
    "comentariosfirmacuatro" varchar(2000)
)
;
CREATE TABLE "memo_fecha_memo" (
    "id_fecha" serial NOT NULL PRIMARY KEY,
    "id_ext" integer NOT NULL,
    "fecha" date NOT NULL,
    "tamano" varchar(20) NOT NULL,
    "autos" varchar(20) NOT NULL,
    "asistentes" varchar(5) NOT NULL,
    "descripcion" varchar(50) NOT NULL
)
;
CREATE INDEX "usuarios_cargo_id" ON "usuarios" ("cargo_id");
CREATE INDEX "memo_patrocinador_id" ON "memo" ("patrocinador_id");
CREATE INDEX "memo_semaforo_nummemo_id" ON "memo_semaforo" ("nummemo_id");

INSERT INTO regusuario_responsable(id, titulo)
    VALUES (1, 'Administrador');
INSERT INTO regusuario_responsable(id, titulo)
    VALUES (2, 'Seguridad del Campus');
INSERT INTO regusuario_responsable(id, titulo)
    VALUES (3, 'Comunicacion e Imagen');
INSERT INTO regusuario_responsable(id, titulo)
    VALUES (4, 'Planta Fisica');
INSERT INTO regusuario_responsable(id, titulo)
    VALUES (5, 'Relaciones Empresariales');

INSERT INTO ususarios VALUES ('Administador','Admin','Admin', 1, 'admin','pass');

COMMIT;